Certifying Machine Code Safety: Shallow Versus Deep Embedding

نویسندگان

  • Martin Wildmoser
  • Tobias Nipkow
چکیده

We formalise a simple assembly language with procedures and a safety policy for arithmetic overflow in Isabelle/HOL. To verify individual programs we use a safety logic. Such a logic can be realised in Isabelle/HOL either as shallow or deep embedding. In a shallow embedding logical formulas are written as HOL predicates, whereas a deep embedding models formulas as a datatype. This paper presents and discusses both variants pointing out their specific strengths and weaknesses.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Towards Compiler-Independent Certifying Compilation

Certifying compilation allows a compiler to produce annotations which prove that target code abides by a speciied safety policy. An independent veriier can check the code without needing to trust the compiler. For such a system to be generally useful, the safety policy should be expressive enough to allow diierent compilers to eeectively produce certiiable code. In this work, we use our experie...

متن کامل

A Typed Calculus Supporting Shallow Embeddings of Abstract Machines

machines and reductions in a system of proof terms for a version the sequent calculus. We believe that by doing so we shed light on some essential characteristics of abstract machines, proofs in sequent calculus systems, and weak normalization of λ-terms. The machines that we consider are the (callby-name) Krivine machine and a call-by-value machine that may be called a “right-to-left CEK machi...

متن کامل

Certifying Compilation and Run-Time Code Generation

A certifying compiler takes a source language program and produces object code as well as a certi cate that can be used to verify that the object code satis es desirable prop erties such as type safety and memory safety Certifying compilation helps to increase both compiler robustness and program safety Compiler robustness is improved since some compiler errors can be caught by checking the obj...

متن کامل

The Logic of Proofs as a Foundation for Certifying Mobile Computation

We explore an intuitionistic fragment of Artëmov’s Logic of Proofs as a type system for a programming language for mobile units. Such units consist of both a code and certificate component. Dubbed the Certifying Mobile Calculus, our language caters for both code and certificate development in a unified theory. In the same way that mobile code is constructed out of code components and extant typ...

متن کامل

Functional Programs: Conversions between Deep and Shallow Embeddings

This paper presents a method which simplifies verification of deeply embedded functional programs. We present a technique by which proof-certified equations describing the effect of functional programs (shallow embeddings) can be automatically extracted from their operational semantics. Our method can be used in reverse, i.e. from shallow to deep embeddings, and thus for implementing certifying...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2004